{
  lib,
  stdenv,
  fetchFromGitHub,
  fuse,
  p7zip,
  autoconf,
  automake,
  pkg-config,
  makeWrapper,
}:

stdenv.mkDerivation rec {
  pname = "fuse-7z-ng";
  version = "0-unstable-2014-06-08";

  src = fetchFromGitHub {
    owner = "kedazo";
    repo = "fuse-7z-ng";
    rev = "eb5efb1f304c2b7bc2e0389ba06c9bf2ac4b932c";
    sha256 = "17v1gcmg5q661b047zxjar735i4d3508dimw1x3z1pk4d1zjhp3x";
  };
  patches = [
    # Drop unused pthread library. pthread_yield()
    # fails the configure.
    ./no-pthread.patch
    # Zero-initialize unset fields of `struct fuse_operations` so that
    # garbage values don't cause segfault.
    # <https://github.com/kedazo/fuse-7z-ng/pull/8>
    ./zero-init-fuse-operations.patch
  ];

  nativeBuildInputs = [
    pkg-config
    makeWrapper
    autoconf
    automake
  ];
  buildInputs = [ fuse ];

  preConfigure = "./autogen.sh";

  libs = lib.makeLibraryPath [ p7zip ]; # 'cause 7z.so is loaded manually
  postInstall = ''
    wrapProgram $out/bin/fuse-7z-ng --suffix LD_LIBRARY_PATH : "${libs}/p7zip"

    mkdir -p $out/share/doc/fuse-7z-ng
    cp TODO README NEWS COPYING ChangeLog AUTHORS $out/share/doc/fuse-7z-ng/
  '';

  meta = with lib; {
    inherit (src.meta) homepage;
    description = "FUSE-based filesystem that uses the p7zip library";
    longDescription = ''
      fuse-7z-ng is a FUSE file system that uses the p7zip
      library to access all archive formats supported by 7-zip.

      This project is a fork of fuse-7z ( https://gitorious.org/fuse-7z/fuse-7z ).
    '';
    platforms = platforms.linux;
    license = licenses.gpl3Plus;
    mainProgram = "fuse-7z-ng";
  };
}
